package main
import (
	"fmt"
	_"strings"
)

//defer的使用 : 在函数执行完毕后，能及时释放资源[最佳实现]~    ------  延时机制
//a := 100  不能在函数外直接这样赋值~！！！！！！！！
func temp(){
	n := 10
	defer fmt.Println("defer temp 1！  " , n) //该 n 仍然是 10 因为 defer 已经拷贝了一份不会因为后面的 ++ 而改变
	defer fmt.Println("defer temp 2！")
	n++
}

func main(){ 
	defer fmt.Println("defer 1！")  //将该defer后面的代码指令 压入[栈]中 ，先不执行； 只有  ~[该函数执行结束后]~  才会执行；
	defer fmt.Println("defer 2！")
	temp()
	fmt.Println("defer ！")
}
//参数传递：引用类型 | 值类型
//引用类型效率高！  例如指针、slice切片、map、管道chan、interface 等
//值类型数据越大效率越低！ 例如int，float，string等等